package com.office.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.office.common.annotation.Excel;
import com.office.common.core.domain.BaseEntity;

/**
 * 报告对象 sys_report
 */
public class SysReport extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 报告ID */
    private Long reportId;

    /** 报告类型（weekly周报 monthly月报） */
    @Excel(name = "报告类型", readConverterExp = "weekly=周报,monthly=月报")
    private String reportType;

    /** 报告标题 */
    @Excel(name = "报告标题")
    private String title;

    /** 报告内容 */
    private String content;

    /** 开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 模板ID */
    @Excel(name = "模板ID")
    private Long templateId;

    /** 状态（0草稿 1已发布） */
    @Excel(name = "状态", readConverterExp = "0=草稿,1=已发布")
    private String status;

    /** 创建时间开始（查询条件） */
    private Date createTimeStart;

    /** 创建时间结束（查询条件） */
    private Date createTimeEnd;

    public void setReportId(Long reportId) {
        this.reportId = reportId;
    }

    public Long getReportId() {
        return reportId;
    }

    public void setReportType(String reportType) {
        this.reportType = reportType;
    }

    public String getReportType() {
        return reportType;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getContent() {
        return content;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setTemplateId(Long templateId) {
        this.templateId = templateId;
    }

    public Long getTemplateId() {
        return templateId;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setCreateTimeStart(Date createTimeStart) {
        this.createTimeStart = createTimeStart;
    }

    public Date getCreateTimeStart() {
        return createTimeStart;
    }

    public void setCreateTimeEnd(Date createTimeEnd) {
        this.createTimeEnd = createTimeEnd;
    }

    public Date getCreateTimeEnd() {
        return createTimeEnd;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("reportId", getReportId())
            .append("reportType", getReportType())
            .append("title", getTitle())
            .append("content", getContent())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("templateId", getTemplateId())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
